﻿using AiSk;
using AiSk.Impl;

var httpClient = new HttpClient();
var text = "我要听写";
var res = await httpClient.GetStreamAsync($"http://127.0.0.1:15555/api/audio-test?text={System.Web.HttpUtility.UrlEncode(text)}");
// 指定保存文件的路径
string filePath = Path.Combine("E:\\projects\\语音识别", $"{text}.pcm");
// 创建文件流
using var fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write);
// 将响应流中的数据复制到文件流中
await res.CopyToAsync(fileStream);
// 关闭文件流
fileStream.Close();
Console.Read();

var question = "沧海一栗。,浑身解数。";
var system = "场景：user输入一组词，你用这组词辅助user做听写作业。\r\n指令：\r\n第一步、user给到的词是用句号分割开的，每个词以句号结尾。\r\n第二部、把user给到的词随机打乱顺序，然后每个词重复输出3遍，输出的词之间使用句号来分割。\r\n第三步、输出一段内容“听写完毕。现在完整播报一遍，请核对答案。”\r\n第四步、按照第一步的随机乱顺把每个词完整输出1遍，输出的词之间使用句号来分割。\r\n\r\n以下是一个示例：\r\n用户给到的词是：\r\n熊大。熊二。熊三。熊四。熊五。\r\n需要返回：\r\n熊二。熊二。熊二。\r\n熊四。熊四。熊四。\r\n熊大。熊大。熊大。\r\n熊五。熊五。熊五。\r\n熊三。熊三。熊三。\r\n听写完毕。现在完整播报一遍，请核对答案。\r\n熊二。熊四。熊大。熊五。熊三。\r\n\r\n### 规则1、user给到的相同的词不需要去重。\r\n### 规则2、不要丢失user给到的词。\r\n### 规则3、不要拆解user给到的词。\r\n### 规则4、不要理解user给到词的词义，只要当做纯文本看待。\r\n### 输出规则：你只需要按照指令输出，不要输出任何多余的东西。\r\n\r\n现在你等待user输入要听写的内容，然后按照上述规则执行";
//var drawQuestion = "鱼香肉丝";
ILLmService service = new AntSkService();
await service.Chat(question, system);
//await service.Embeddings();
//await service.StableDiffusion(drawQuestion);
Console.Read();